\section{Issues}

An encountered problem was the support of Java threads in Android. In fact threads are executed sequentialy with the main application, blocking the execution. 
But there is a class, the \texttt{AsyncTask}, that works as a thread and so can execute asynchronously any task. Unfortunaly this class 
is defined in the android SDK so it limit the portability of the client (a Java program ideally should be portable between platforms, but doing this it can 
only work on Andorid OS).

The objects passing between Android's Activities (used to create the GUI) was another problem. In fact the passing of an object from an Activity to another one
is possibile only if the object implements the interface \texttt{Parcelable} (defined in the andorid SDK). This interface forces the developer to define 
the methods to serialize and deserialize the object. But the object we want to pass is the one that manages the connection with the server (\texttt{Client.LogicalView}) 
and it is used by the GUI for all its own life cycle. But for it is not possibile to implement the interface \texttt{Parcelable} because it contains some 
fields of type \texttt{Socket}, defined in Java Library, that are not serializable. The only solution is make the LogicalView manager static, so it has a memoryspace 
separated from the main application an in this way it can be readed by each Activity without problem.

Another problem that we have found is the bad support of the terminal by the manufacter. In fact the last official system software update was relased six  
months ago and in that version Android is still at the version 1.5. Sadly most of the API that can manage the wifi connection are defined in the version 
1.6, so some things we wanted to do has been defined in a theorical way but not tested.f